import * as THREE from "three";
// 引入Three.js扩展库
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import {lon2xy} from "./scene/math"
var width = window.innerWidth;
var height = window.innerHeight;
// const s = 200
// var k = width / height
// 创建一个透明相机
var camera = new THREE.PerspectiveCamera(30, width / height, 1, 30000);
// // 设置相机的位置
// camera.position.set(200, 100, 200);
var x = 121.49526536464691;//东方明珠经纬度坐标
var y = 31.24189350905988;
// 先把转换为墨卡托坐标
const xy = lon2xy(x,y)
// 黄浦江的大小大概为5000，相机的位置基于东方明珠距离5000+
camera.position.set(xy.x+5000, xy.y+5000, 5000);
// 设置相机指向
camera.lookAt(xy.x, xy.y, 0);
// 创建renderer
/**
 * 创建渲染器对象
 */
var renderer = new THREE.WebGLRenderer({
    antialias: true, //开启锯齿
});
// renderer.outputEncoding = THREE.sRGBEncoding;
renderer.setPixelRatio(window.devicePixelRatio);//设置设备像素比率,防止Canvas画布输出模糊。
renderer.setSize(width, height); //设置渲染区域尺寸
var controls = new OrbitControls(camera, renderer.domElement);
// 相机控件与.lookAt()无效( .target属性 )
controls.target.set(xy.x, xy.y, 0);
controls.update(); //update()函数内会执行camera.lookAt(controls.targe)
// // 左右旋转限制100度
// controls.maxAzimuthAngle = Math.PI * (100/180);
// controls.minAzimuthAngle = -Math.PI * (100/180);
// // 上下旋转限制100度
// controls.maxPolarAngle = Math.PI * (120/180);
// controls.minPolarAngle =  Math.PI * (30/180);
// // 缩放限制
// controls.maxDistance = 500;
// controls.minDistance = 200;

export {camera,renderer};